'use strict';
/**
 * @description 域名访问插件
 * @author Bluer_Dai
 * */

/**
 * @param {Array<string>} options 域名白名单组成的数组
 */
module.exports = options => {
  return async (ctx, next) => {
    // 获取请求的域名信息
    const { referer } = ctx.request.header;
    if (referer) {
      // 如果请求源的域名在白名单里 则允许访问 反之 则拒绝
      if (options.includes(new URL(referer).host)) {
        await next();
      } else {
        ctx.body = {
          status: 500,
          message: '你没有权限进入',
        };
      }
    } else {
      await next();
    }

  };
};
